home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -screenplay- / shareware / awinquake / awinquake_src.readme < prev    next >
Text File  |  2000-02-29  |  6KB  |  160 lines

  1. Short:    Source code of awinquake 0.5, a68k/ppc
  2. Author:   Peter McGavin  (p.mcgavin@irl.cri.nz)
  3. Uploader: Peter McGavin  (p.mcgavin@irl.cri.nz)
  4. Version:  0.5
  5. Type:     game/shoot
  6.  
  7.  
  8. This archive contains the SAS/C Amiga source code of awinquake and
  9. awinquakeppc 0.4.  You don't need it to play winquake or awinquakeppc,
  10. only if you want to try and compile it or look at how it works.
  11.  
  12. awinquake was derived from the original ID Software Linux winquake
  13. source which you can download from:
  14.  
  15.    ftp://ftp.cdrom.com/pub/idgames/idstuff/source/q1source.zip
  16.  
  17. My modified source code should still compile for Linux (APUS),
  18. Solaris, Win95, etc, with no changes --- untested.  All winquake
  19. support files for those platforms are included in this archive,
  20. even though they are not used by the Amiga version.
  21.  
  22.  
  23. ------------------------------------------------------------------------
  24. v0.5       30 Jan 2000
  25.  
  26. sys_amiga.c: Memory heap was allocated twice.  Oops.  Fixed.
  27.  
  28. sys:amiga.c: Fixed return value of main().
  29.  
  30. in_amiga.c: Added joypad support and improved mouse support using
  31. Jarmo Laukkonen's WarpQuake source code as an example.  Variable
  32. mouse_has_moved is set in vid_amiga.c.
  33.  
  34. Tried compiling WarpOS PPC version with StormC.  Changes required:
  35.  
  36. common.h: redefine qboolean, false and true
  37.  
  38. console.c: use fopen(), fwrite(), fclose(), remove() instead of
  39. open(), write(), close(), unlink().
  40.  
  41. net.h, net_main.c, net_dgrm.c: use prototypes for procedure function
  42. variable.
  43.  
  44. Copied writechunkypixels_stub.c, cybergraphics_protos_stub.c,
  45. cdplayer_protos_stub.c and lowlevel_protos_stub.c from other projects.
  46.  
  47. Created project file awinquakewos.¶.  The smakefile also works.
  48.  
  49. StormC version works, but rather slow.
  50.  
  51. Tried compiling WarpOS PPC version with vbcc.  Changes required:
  52.  
  53. All *.c and *.h files: Remove ^Ms with dos2unix.
  54.  
  55. console.c, sys_amiga.c, vid_amiga.c and cd_amiga.c: Various #ifdef __VBCC__
  56.  
  57. r_alias.c: vbccwos generates bad code for the assignment "pauxverts =
  58. &auxverts[0]" in R_AliasDrawModel.  As a workaround, made auxverts[]
  59. static for vbcc in r_alias.c.
  60.  
  61. sys_amiga.c: vbcc incorrectly parses the double constant 4294967296.0
  62. in source code.  Replaced with (2147483648.0 + 2147483648.0).
  63.  
  64. For vbccwos, compiled a few inner-loop files with -O3.  However vbcc
  65. generated bad code for r_draw.c and maybe r_bsp.c at that level of
  66. optimisation.  Compiled most files for vbccwos with -O1.
  67.  
  68. mathlib.c: Both StormC and VBCC rounded results differently to SAS/C,
  69. gcc and EGCS in anglemod().  The result was the player's view slowly
  70. drifted when compiled with StormC or VBCC.  Made correction in
  71. anglemod().
  72.  
  73. ------------------------------------------------------------------------
  74. v0.4       11 Jan 2000
  75.  
  76. vid_amiga.c: Call cybergraphics.library WritePixelArray() instead of
  77. WriteChunkyPixels() under KS3.0 (provided cgx lib is open).
  78.  
  79. sys_amiga.c: PPCGetAttr (PPCINFOTAG_CPUPLL) appears to return the PLL
  80. code in the high nibble.  Calculated bus speed is more likely to be
  81. right now.
  82.  
  83. common.c and host.c: Made more changes to handling of ':' and '/' and
  84. directory paths.
  85.  
  86. Created in_amiga.c from in_null.c.  Support -mouse and -mousepointer.
  87. Changes to IDCMP message handling in vid_amiga.c.
  88.  
  89. sys_amiga.c: Changed handling of PLL for calculating bus speed.
  90. Hopefully it's right now.
  91.  
  92. sys_amiga.c: Call Host_Shutdown() on exit.  Config.cfg is written now.
  93.  
  94.  
  95. ------------------------------------------------------------------------
  96. v0.3        4 Jan 2000
  97.  
  98. v0.2 called BestCModeIDTags() even if cybergraphics.library failed to
  99. open.  That caused crashes and other problems on Amigas without
  100. cybergraphics.library.
  101.  
  102. The SAS/C __AMIGADATE__ macro generates the string (4/1/0) for 4th Jan
  103. 2000, instead of (4/1/100).
  104.  
  105.  
  106. ------------------------------------------------------------------------
  107. v0.2       30 Dec 1999
  108.  
  109. Wrote sys_amiga.c, vid_amiga.c, snd_amiga.c, cd_amiga.c and
  110. net_amigaudp.c starting with copies of sys_null.c, vid_null.c,
  111. snd_null.c, cd_null.c and net_udp.c, mainly by cutting and pasting
  112. from other projects.
  113.  
  114. Created smakefile.
  115.  
  116. PPC assembly files copied from other projects are: amiga_timer.s,
  117. amiga_cgxtagfns.s and amiga_socket_lib.s.  Also created
  118. cdplayer_pragmas.h.  It goes in ppcinclude:ppcpragmas.
  119.  
  120. Used includes and libs from SDKs for cybergraphics, AmiTCP and
  121. cdplayer.library, all on Aminet.
  122.  
  123. d_edge.c: commented out declaration of screenwidth (conflict with
  124. declaration in r_main.c).
  125.  
  126. d_local.h: made sadjust, tadjust, bbextents, bbextentt and prealspandrawer
  127. all extern to avoid duplicate definitions of symbols.
  128.  
  129. chase.c: declared SV_RecursiveHullCheck as extern.
  130.  
  131. host_cmd.c: declared SV_SaveSpawnparms as extern.
  132.  
  133. net_dgrm.c: don't #define BAN_TEST
  134.  
  135. common.c: deal with '/' in filenames in calls to COM_AddGameDirectory()
  136.  
  137. SAS/C 6.58 appears to generate bad code for R_TransformFrustum() in
  138. r_misc.c when optimisations are turned on.  Split r_misc.c into 2
  139. separate files, r_misc1.c and r_misc2.c, the latter containing only
  140. R_TransformFrustum().  Compiled r_misc2.c as a special case without
  141. optimisation.
  142.  
  143. Had a lot of trouble debugging amigaudp networking code.  Tracked down
  144. 2 problems after a full day of debugging.  The first was that the
  145. wrong errno variable was being picked up.  Replaced references to
  146. errno with calls to bsdsocket.library Errno().  The 2nd problem was in
  147. UDP_AddrCompare().  The original code compared addr1->sa_family with
  148. addr2->sa_family.  Because of the way chars are aligned in the
  149. sockaddr_in structure, this included an uninitialised byte.  Changed
  150. to compare ((struct sockaddr_in *)addr)->sin_family instead.  Finished
  151. up changing all occurrences of addr->sa_family to ((struct sockaddr_in
  152. *)addr)->sin_family.
  153.  
  154. Compiled some low-level rendering modules with ppc-amigaos-gcc instead
  155. of scppc.  Overall speed increased by about 3%.  Discovered that
  156. R_DrawSolidClippedSubmodelPolygons() was truncated by scppc to
  157. R_DrawSolidClippedSubmodelPolygo() and wouldn't link with untruncated
  158. references generated by ppc-amigaos-gcc.  Fixed by truncating the name
  159. in the source code in r_bsp.c, r_main.c and r_local.h.
  160.